package cn.itcast.hotel.myListener;


import cn.itcast.hotel.constant.MqConstants;
import cn.itcast.hotel.service.IHotelService;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class DirecterListener {

    @Autowired
    private IHotelService hotelService;

    @RabbitListener(bindings = {
            @QueueBinding(
                    value = @Queue(name = MqConstants.HOTEL_INSERT_QUEUE),
                    exchange = @Exchange(name = MqConstants.HOTEL_EXCHANGE, type = ExchangeTypes.DIRECT),
                    key = {MqConstants.HOTEL_INSERT_KEY}
            )
    })
    public void listenDirectInsertQueue(Long id) throws Exception {
        hotelService.InsertByIdHotel(id);
    }

    @RabbitListener(bindings = {
            @QueueBinding(
                    value = @Queue(name = MqConstants.HOTEL_DELETE_QUEUE),
                    exchange = @Exchange(name = MqConstants.HOTEL_EXCHANGE, type = ExchangeTypes.DIRECT),
                    key = {MqConstants.HOTEL_DELETE_KEY}
            )
    })
    public void listenDirectDeleteQueue(Long id) throws Exception {
        hotelService.deleteByIdHotel(id);
    }



}
